home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / Xm / XmPrintToFile.z / XmPrintToFile
Text File  |  1998-10-30  |  7KB  |  133 lines

  1.  
  2.  
  3.  
  4.      XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeee((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeee((((3333XXXX))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeee - Retrieves and saves data that would normally
  10.           be printed by the X Print Server.
  11.  
  12.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.           #include <Xm/Print.h>
  14.           XXXXttttEEEEnnnnuuuummmmXXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeee(
  15.           DDDDiiiissssppppllllaaaayyyy****ddddppppyyyy,
  16.           SSSSttttrrrriiiinnnnggggffffiiiilllleeeennnnaaaammmmeeee,
  17.           XXXXPPPPFFFFiiiinnnniiiisssshhhhPPPPrrrrooooccccffffiiiinnnniiiisssshhhh____pppprrrroooocccc,
  18.           XXXXttttPPPPooooiiiinnnntttteeeerrrrcccclllliiiieeeennnntttt____ddddaaaattttaaaa);
  19.  
  20.      VVVVEEEERRRRSSSSIIIIOOOONNNN
  21.           This page documents Motif 2.1.
  22.  
  23.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  24.           XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeeehides the details of X display connection and
  25.           XXXXppppGGGGeeeettttDDDDooooccccuuuummmmeeeennnnttttDDDDaaaattttaaaato the Motif application programmer.
  26.  
  27.           This function is a convenience routine that hides the
  28.           details of the X and Xp internals to the application
  29.           programmer by calling the XXXXppppGGGGeeeettttDDDDooooccccuuuummmmeeeennnnttttDDDDaaaattttaaaafunction with
  30.           appropriate save and finish callbacks.
  31.  
  32.           This is used in the context of X Printing when the user has
  33.           specified the "print-to-file" option from a regular Print
  34.           Setup Dialog box.
  35.  
  36.           XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeeefirst tries to open the given filename for
  37.           writing and returns FFFFaaaallllsssseeeeif it can't.  Else, it uses
  38.           XXXXppppGGGGeeeettttDDDDooooccccuuuummmmeeeennnnttttDDDDaaaattttaaaa, giving it a save proc that writes the
  39.           data received in the file and a finish proc that closes the
  40.           file or removes it on an unsuccessful termination.  It calls
  41.           ffffiiiinnnniiiisssshhhh____pppprrrrooooccccat that point, passing it the argument received
  42.           from the Xp layer (ssssttttaaaattttuuuussss ======== XXXXPPPPGGGGeeeettttDDDDooooccccFFFFiiiinnnniiiisssshhhheeeeddddmeans the file
  43.           is valid and was closed, otherwise the file was removed).
  44.  
  45.           XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeee is non-blocking; if it returns successfully,
  46.           it just means the file was opened successfully, not that all
  47.           the data was received.
  48.  
  49.           _d_p_y       Print display connection.
  50.  
  51.           _f_i_l_e_n_a_m_e  Name of the file to put the print data in.
  52.  
  53.           _f_i_n_i_s_h__p_r_o_c
  54.                     Called when all the data has been received.
  55.  
  56.           _c_l_i_e_n_t__d_a_t_a
  57.                     Passed with the _f_i_n_i_s_h__p_r_o_c.
  58.  
  59.      RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEE
  60.  
  61.  
  62.  
  63.      PPPPaaaaggggeeee 1111                                         ((((pppprrrriiiinnnntttteeeedddd 11110000////22224444////99998888))))
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeee((((3333XXXX))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         XXXXmmmmPPPPrrrriiiinnnnttttTTTTooooFFFFiiiilllleeee((((3333XXXX))))
  71.  
  72.  
  73.  
  74.           Returns FFFFaaaallllsssseeeeif the filename could not be created or opened
  75.           for writing, TTTTrrrruuuueeee otherwise.
  76.  
  77.      EEEERRRRRRRROOOORRRRSSSS////WWWWAAAARRRRNNNNIIIINNNNGGGGSSSS
  78.           Not applicable
  79.  
  80.      EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  81.           A typical OK callback from a DDDDttttPPPPrrrriiiinnnnttttSSSSeeeettttuuuuppppBBBBooooxxxx:
  82.  
  83.           PrintOKCallback(widget...)
  84.           /*-------------*/
  85.           {   int save_data = XPSpool;
  86.  
  87.               pshell = XmPrintSetup (widget, pbs->print_screen,
  88.                                              "Print", NULL, 0);
  89.  
  90.               XtAddCallback(pshell, XmNstartJobCallback, startJobCB, data);
  91.  
  92.               if (pbs->destination == DtPRINT_TO_FILE)
  93.                            save_data = XPGetData;
  94.  
  95.               /* start job must precede XpGetDocumentData in XmPrintToFile */
  96.               XpStartJob(XtDisplay(pshell), save_data);
  97.               XFlush(XtDisplay(pshell));  /* maintain the sequence
  98.                                            between startjob and getdocument */
  99.  
  100.               /* setup print to file */
  101.               if (pbs->destination == DtPRINT_TO_FILE)
  102.                   XmPrintToFile(XtDisplay(pshell),
  103.                                            pbs->dest_info, FinishPrintToFile, NULL);
  104.               }
  105.  
  106.           }
  107.  
  108.           static void
  109.           startJobCB(Widget, XtPointer call_data, XtPointer client_data)
  110.           {
  111.             print(p);   /* rendering happens here */
  112.  
  113.             XpEndJob(XtDisplay(p->print_shell));
  114.  
  115.             /* clean up */
  116.             XtDestroyWidget(p->print_shell);
  117.                     XtCloseDisplay(XtDisplay(p->print_shell));
  118.           }
  119.  
  120.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  121.           XXXXmmmmPPPPrrrriiiinnnnttttSSSSeeeettttuuuupppp(3), XXXXmmmmPPPPrrrriiiinnnnttttSSSShhhheeeellllllll(3), XXXXmmmmRRRReeeeddddiiiissssppppllllaaaayyyyWWWWiiiiddddggggeeeetttt(3),
  122.           XXXXmmmmPPPPrrrriiiinnnnttttPPPPooooppppuuuuppppPPPPDDDDMMMM(3)
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                                         (printed 10/24/98)
  130.  
  131.  
  132.  
  133.